﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Domain; //подключение Domain
using Session; //подключение Session
using Notif; //подключение Notif

namespace Personal
{
    public partial class FormPrsUdt : Form
    {
        BrokerPersonal b_prs = new BrokerPersonal(); // объявление BrokerPersonal
        int idx1, idx2; // объявление переменных для установки индекса
        public FormPrsUdt()
        {
            InitializeComponent();
        }

        private void Prs_Upd_sBt_Ex_Click(object sender, EventArgs e) // закрытие формы
        {
            FClose();
        }

        private void FormPrsUdt_FormClosed(object sender, FormClosedEventArgs e) // закрытие формы
        {
            FClose();
        }

        private void FormPrsUdt_Load(object sender, EventArgs e) // заполнение ComboBox-ов при открытие формы
        {
            Prs_Upd_cBE_Np.Properties.Items.AddRange(b_prs.FillComboBoxPost()); // заполнение FillComboBoxPost
            Prs_Upd_cBE_Dp.Properties.Items.AddRange(b_prs.FillComboBoxDep()); // заполнение FillComboBoxDep

            int id1 = Convert.ToInt32(Prs_Upd_cBE_Np.Text); // объявление переменной и присвоение ей значения из Prs_Upd_cBE_Np.Text

            for (int i = 0; i < Prs_Upd_cBE_Np.Properties.Items.Count; ++i) //цикл на просмотр всех Item-ов
            {
                string s = Prs_Upd_cBE_Np.Properties.Items[i].ToString(); // объявление переменной и присвоение ей значения Item-а
                if (s == b_prs.indexPost(id1)) // вызов фенкции на "поиск по id" и сравниване полученных данных со значениями из Item-ов
                {
                    idx1 = i; // присваивание idx значения нужного индекса
                }
            }

            Prs_Upd_cBE_Np.SelectedIndex = idx1; // установка индекса


            int id2 = Convert.ToInt32(Prs_Upd_cBE_Dp.Text); // объявление переменной и присвоение ей значения из Prs_Upd_cBE_Dp.Text

            for (int i = 0; i < Prs_Upd_cBE_Dp.Properties.Items.Count; ++i) //цикл на просмотр всех Item-ов
            {
                string s = Prs_Upd_cBE_Dp.Properties.Items[i].ToString(); // объявление переменной и присвоение ей значения Item-а
                if (s == b_prs.indexDep(id2)) // вызов фенкции на "поиск по id" и сравниване полученных данных со значениями из Item-ов
                {
                    idx2 = i; // присваивание idx2 значения нужного индекса
                }
            }

            Prs_Upd_cBE_Dp.SelectedIndex = idx2; // установка индекса

        }

        private void Prs_Upd_sBt_Upd_Click(object sender, EventArgs e) // при нажатии кнопки "Сохранить"
        {
            try
            {
                Dm_Pers NewPrs = new Dm_Pers(); // объявление Dm_Pers как NewPrs
                Dm_Pers OldPrs = new Dm_Pers(); // объявление Dm_Pers как OldPrs
                Dm_Dep dep = new Dm_Dep();  // объявление Dm_Dep
                Dm_Post post = new Dm_Post();  // объявление Dm_Post

                OldPrs.Id_pers = Convert.ToInt32(label7.Text); // присвоение значений Id_pers из label7

                NewPrs.F_name = Prs_Upd_tE_Fn.Text; // присвоение значений F_name из Prs_Upd_tE_Fn
                NewPrs.L_name = Prs_Upd_tE_Ln.Text; // присвоение значений L_name из Prs_Upd_tE_Ln

                post = Prs_Upd_cBE_Np.SelectedItem as Dm_Post; // присвоение значений post из Prs_Upd_cBE_Np
                dep = Prs_Upd_cBE_Dp.SelectedItem as Dm_Dep; // присвоение значений dep из Prs_Upd_cBE_Dp

                NewPrs.Login = Prs_Upd_tE_Log.Text; // присвоение значений Login из Prs_Upd_tE_Log
                NewPrs.Pass = Prs_Upd_tE_Pass.Text; // присвоение значений Pass из Prs_Upd_tE_Pass
                NewPrs.Phone = Prs_Upd_tE_Ph.Text; // присвоение значений Phone из Prs_Upd_tE_Ph.Text

                b_prs.Update(OldPrs, NewPrs, post, dep); // вызов функции на редактирование записи

                MessNotif.Informing("Запись успешно отредактирована.", "Запись отредактирована"); // информирование о редактирование записи 

                FClose(); // закрытие формы
            }

            catch (Exception ex) // если не добавилось
            {
                MessageBox.Show(ex.ToString());
            }

        }
        
        private void FClose() // функция для закрытия формы
        {
            Prs_Upd_cBE_Np.Properties.Items.Clear(); // отчистка ComboBoxPost
            Prs_Upd_cBE_Dp.Properties.Items.Clear(); // отчистка ComboBoxDep
            this.Close();
        }

        private void fullfill()
        {
            if (Prs_Upd_tE_Fn.Text != "" & Prs_Upd_tE_Ln.Text != "" & Prs_Upd_cBE_Np.SelectedItem != null & Prs_Upd_cBE_Dp.SelectedItem != null & Prs_Upd_tE_Log.Text != "" & Prs_Upd_tE_Pass.Text != "" & Prs_Upd_tE_Ph.Text != "8")
            {
                Prs_Upd_sBt_Upd.Enabled = true;
            }
            else
                Prs_Upd_sBt_Upd.Enabled = false;
        }

        private void FormPrsUdt_MouseEnter(object sender, EventArgs e)
        {
            fullfill();
        }
    }
}
